package hospital.domain;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class AsignacionAuto implements IAsignacionAuto
{
	Voluntario vol;
	List<Actividades> actividad;
	@Override
	public List<Actividades> altaActividades(Voluntario vol, List<Actividades> elegidas, List<Actividades> disponibles) 
	{
		
		Iterator<Actividades> itElegidas = elegidas.iterator();
		Iterator<Actividades> itDisponible = elegidas.iterator();
		
		Actividades actividadElegida;
		Actividades actividadDisponible;
		Actividades cActividad = new Actividades();
		while (itElegidas.hasNext())
		{
			while (itDisponible.hasNext())
			{
				actividadDisponible = itDisponible.next();
				actividadElegida 	= itElegidas.next();
				if(actividadDisponible.getEnfermedad().toString().equals(actividadElegida.getEnfermedad().toString()))
				{
					if(actividadDisponible.getFecha().equals(actividadElegida.getFecha()))
					{
						if(actividadDisponible.getHora().equals(actividadDisponible.getHora()))
						{
							if(actividadDisponible.getLugar().toString().equals(actividadDisponible.getLugar().toString()))
							{
								if(actividadElegida.getPlazasOcupadas() <= actividadElegida.getTotalPlazas())
								{
									cActividad.setEnfermedad(actividadElegida.getEnfermedad());
									cActividad.setFecha(actividadElegida.getFecha());
									cActividad.setHora(actividadElegida.getHora());
									cActividad.setLugar(actividadElegida.getLugar());
									cActividad.setNombre(actividadElegida.getNombre());
									cActividad.setDescripcion(actividadElegida.getDescripcion());
									cActividad.setIdentificador(actividadElegida.getIdentificador());
									cActividad.setTotalPlazas(actividadElegida.getTotalPlazas());
									actividadDisponible.setPlazasOcupadas();
									cActividad.setVoluntarios(vol);
									actividad.add(cActividad);
								}//if	
			
							}//if
						}//if
						
					}//if
				}//if
				else
				{
					actividad = new LinkedList<Actividades>();
				}
			}//while
		}//while

		return actividad;
	}//metodo	
	@Override
	
	public void puntuar(Actividades actividad, Voluntario vol, Integer puntuacion) {
		// TODO Auto-generated method stub
		List<Voluntario> voluntarioEnActividad = actividad.getVoluntarios();
		if(voluntarioEnActividad.contains(vol))
		{
			vol.setCalificacion(vol.getCalificacion()+puntuacion);
		}
	}
}//clase 


